#ifndef vmidi_h
#define vmidi_h

namespace VMidi {

/**
  * @enum VMidiPortType
  * @brief Type of MIDI port : input or output.
  */
typedef enum {
  VMIDI_PORT_INPUT  = 1,
  VMIDI_PORT_OUTPUT = 2
} VMidiPortType;

// Forward declaration.
class VMidiInterface;

class VMidiFactory {
  public:
    /**
      * @return a new instance of VMidiInterface, depending on the
      * implementation, defined at compile time.
      * The caller is responsible for the free of the returned instance.
      * @sa VMidiInterface
      */
    static VMidiInterface* getInstance();

  private:
    VMidiFactory()   {}
    ~VMidiFactory()  {}
};


};

#endif

